import sqlite3
import hashlib
import datetime

# 连接到SQLite数据库
conn = sqlite3.connect('app.db')
cursor = conn.cursor()

# 新的超级管理员信息
new_phone = '888888'
new_password = 'admin888'  # 新的密码
hashed_password = hashlib.sha256(new_password.encode('utf-8')).hexdigest()
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

try:
    # 找到超级管理员账号
    cursor.execute("SELECT id, phone, admin_level FROM user WHERE is_admin = 1 AND admin_level >= 2;")
    super_admins = cursor.fetchall()
    
    if super_admins:
        print("找到超级管理员账号：")
        for admin in super_admins:
            print(f"ID: {admin[0]}, 手机号: {admin[1]}, 管理员级别: {admin[2]}")
        
        # 选择第一个超级管理员进行修改
        admin_id = super_admins[0][0]
        
        # 检查新手机号是否已被使用
        cursor.execute("SELECT id FROM user WHERE phone = ? AND id != ?;", (new_phone, admin_id))
        existing_user = cursor.fetchone()
        
        if existing_user:
            print(f"警告: 手机号 {new_phone} 已被其他用户使用(ID: {existing_user[0]})")
            # 询问是否要继续
            confirm = input("是否继续修改超级管理员信息？(y/n): ")
            if confirm.lower() != 'y':
                print("操作已取消")
                conn.close()
                exit()
        
        # 同时修改手机号和密码
        cursor.execute(
            "UPDATE user SET phone = ?, password = ?, updated_at = ? WHERE id = ?;",
            (new_phone, hashed_password, now, admin_id)
        )
        conn.commit()
        print(f"\n✅ 超级管理员信息已成功更新：")
        print(f"- ID: {admin_id}")
        print(f"- 新手机号: {new_phone}")
        print(f"- 新密码: {new_password}")
        print("\n请使用新的账号密码登录系统。")
    else:
        print("未找到超级管理员账号")
        
        # 检查是否存在普通管理员账号
        cursor.execute("SELECT id, phone, admin_level FROM user WHERE is_admin = 1;")
        normal_admins = cursor.fetchall()
        
        if normal_admins:
            print("找到以下普通管理员账号：")
            for admin in normal_admins:
                print(f"ID: {admin[0]}, 手机号: {admin[1]}, 管理员级别: {admin[2]}")
            print("请将其中一个提升为超级管理员，然后再运行此脚本")
        else:
            print("系统中没有管理员账号，请运行 init_admin.py 创建超级管理员账号")

except sqlite3.Error as e:
    print(f"操作数据库时出错: {e}")
    conn.rollback()
finally:
    # 关闭连接
    cursor.close()
    conn.close()

print('操作完成')